package com.wei.lolbox.dao;

import java.util.Map;

import org.greenrobot.greendao.AbstractDao;
import org.greenrobot.greendao.AbstractDaoSession;
import org.greenrobot.greendao.database.Database;
import org.greenrobot.greendao.identityscope.IdentityScopeType;
import org.greenrobot.greendao.internal.DaoConfig;

import com.wei.lolbox.model.discover.Heroes;
import com.wei.lolbox.model.discover.HeroPosition;
import com.wei.lolbox.model.discover.HeroRoles;
import com.wei.lolbox.model.discover.PlayerCache;
import com.wei.lolbox.model.discover.Servicer;
import com.wei.lolbox.model.home.HomeTitle;
import com.wei.lolbox.model.home.HomeVideo;
import com.wei.lolbox.model.msg.CharmingPhoto;
import com.wei.lolbox.model.msg.JiongPhoto;
import com.wei.lolbox.model.msg.Match;
import com.wei.lolbox.model.msg.MsgTitle;
import com.wei.lolbox.model.msg.Top;
import com.wei.lolbox.model.msg.TopHeader;
import com.wei.lolbox.model.msg.Videoes;
import com.wei.lolbox.model.msg.Wallpaper;

import com.wei.lolbox.dao.HeroesDao;
import com.wei.lolbox.dao.HeroPositionDao;
import com.wei.lolbox.dao.HeroRolesDao;
import com.wei.lolbox.dao.PlayerCacheDao;
import com.wei.lolbox.dao.ServicerDao;
import com.wei.lolbox.dao.HomeTitleDao;
import com.wei.lolbox.dao.HomeVideoDao;
import com.wei.lolbox.dao.CharmingPhotoDao;
import com.wei.lolbox.dao.JiongPhotoDao;
import com.wei.lolbox.dao.MatchDao;
import com.wei.lolbox.dao.MsgTitleDao;
import com.wei.lolbox.dao.TopDao;
import com.wei.lolbox.dao.TopHeaderDao;
import com.wei.lolbox.dao.VideoesDao;
import com.wei.lolbox.dao.WallpaperDao;

// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.

/**
 * {@inheritDoc}
 * 
 * @see org.greenrobot.greendao.AbstractDaoSession
 */
public class DaoSession extends AbstractDaoSession {

    private final DaoConfig heroesDaoConfig;
    private final DaoConfig heroPositionDaoConfig;
    private final DaoConfig heroRolesDaoConfig;
    private final DaoConfig playerCacheDaoConfig;
    private final DaoConfig servicerDaoConfig;
    private final DaoConfig homeTitleDaoConfig;
    private final DaoConfig homeVideoDaoConfig;
    private final DaoConfig charmingPhotoDaoConfig;
    private final DaoConfig jiongPhotoDaoConfig;
    private final DaoConfig matchDaoConfig;
    private final DaoConfig msgTitleDaoConfig;
    private final DaoConfig topDaoConfig;
    private final DaoConfig topHeaderDaoConfig;
    private final DaoConfig videoesDaoConfig;
    private final DaoConfig wallpaperDaoConfig;

    private final HeroesDao heroesDao;
    private final HeroPositionDao heroPositionDao;
    private final HeroRolesDao heroRolesDao;
    private final PlayerCacheDao playerCacheDao;
    private final ServicerDao servicerDao;
    private final HomeTitleDao homeTitleDao;
    private final HomeVideoDao homeVideoDao;
    private final CharmingPhotoDao charmingPhotoDao;
    private final JiongPhotoDao jiongPhotoDao;
    private final MatchDao matchDao;
    private final MsgTitleDao msgTitleDao;
    private final TopDao topDao;
    private final TopHeaderDao topHeaderDao;
    private final VideoesDao videoesDao;
    private final WallpaperDao wallpaperDao;

    public DaoSession(Database db, IdentityScopeType type, Map<Class<? extends AbstractDao<?, ?>>, DaoConfig>
            daoConfigMap) {
        super(db);

        heroesDaoConfig = daoConfigMap.get(HeroesDao.class).clone();
        heroesDaoConfig.initIdentityScope(type);

        heroPositionDaoConfig = daoConfigMap.get(HeroPositionDao.class).clone();
        heroPositionDaoConfig.initIdentityScope(type);

        heroRolesDaoConfig = daoConfigMap.get(HeroRolesDao.class).clone();
        heroRolesDaoConfig.initIdentityScope(type);

        playerCacheDaoConfig = daoConfigMap.get(PlayerCacheDao.class).clone();
        playerCacheDaoConfig.initIdentityScope(type);

        servicerDaoConfig = daoConfigMap.get(ServicerDao.class).clone();
        servicerDaoConfig.initIdentityScope(type);

        homeTitleDaoConfig = daoConfigMap.get(HomeTitleDao.class).clone();
        homeTitleDaoConfig.initIdentityScope(type);

        homeVideoDaoConfig = daoConfigMap.get(HomeVideoDao.class).clone();
        homeVideoDaoConfig.initIdentityScope(type);

        charmingPhotoDaoConfig = daoConfigMap.get(CharmingPhotoDao.class).clone();
        charmingPhotoDaoConfig.initIdentityScope(type);

        jiongPhotoDaoConfig = daoConfigMap.get(JiongPhotoDao.class).clone();
        jiongPhotoDaoConfig.initIdentityScope(type);

        matchDaoConfig = daoConfigMap.get(MatchDao.class).clone();
        matchDaoConfig.initIdentityScope(type);

        msgTitleDaoConfig = daoConfigMap.get(MsgTitleDao.class).clone();
        msgTitleDaoConfig.initIdentityScope(type);

        topDaoConfig = daoConfigMap.get(TopDao.class).clone();
        topDaoConfig.initIdentityScope(type);

        topHeaderDaoConfig = daoConfigMap.get(TopHeaderDao.class).clone();
        topHeaderDaoConfig.initIdentityScope(type);

        videoesDaoConfig = daoConfigMap.get(VideoesDao.class).clone();
        videoesDaoConfig.initIdentityScope(type);

        wallpaperDaoConfig = daoConfigMap.get(WallpaperDao.class).clone();
        wallpaperDaoConfig.initIdentityScope(type);

        heroesDao = new HeroesDao(heroesDaoConfig, this);
        heroPositionDao = new HeroPositionDao(heroPositionDaoConfig, this);
        heroRolesDao = new HeroRolesDao(heroRolesDaoConfig, this);
        playerCacheDao = new PlayerCacheDao(playerCacheDaoConfig, this);
        servicerDao = new ServicerDao(servicerDaoConfig, this);
        homeTitleDao = new HomeTitleDao(homeTitleDaoConfig, this);
        homeVideoDao = new HomeVideoDao(homeVideoDaoConfig, this);
        charmingPhotoDao = new CharmingPhotoDao(charmingPhotoDaoConfig, this);
        jiongPhotoDao = new JiongPhotoDao(jiongPhotoDaoConfig, this);
        matchDao = new MatchDao(matchDaoConfig, this);
        msgTitleDao = new MsgTitleDao(msgTitleDaoConfig, this);
        topDao = new TopDao(topDaoConfig, this);
        topHeaderDao = new TopHeaderDao(topHeaderDaoConfig, this);
        videoesDao = new VideoesDao(videoesDaoConfig, this);
        wallpaperDao = new WallpaperDao(wallpaperDaoConfig, this);

        registerDao(Heroes.class, heroesDao);
        registerDao(HeroPosition.class, heroPositionDao);
        registerDao(HeroRoles.class, heroRolesDao);
        registerDao(PlayerCache.class, playerCacheDao);
        registerDao(Servicer.class, servicerDao);
        registerDao(HomeTitle.class, homeTitleDao);
        registerDao(HomeVideo.class, homeVideoDao);
        registerDao(CharmingPhoto.class, charmingPhotoDao);
        registerDao(JiongPhoto.class, jiongPhotoDao);
        registerDao(Match.class, matchDao);
        registerDao(MsgTitle.class, msgTitleDao);
        registerDao(Top.class, topDao);
        registerDao(TopHeader.class, topHeaderDao);
        registerDao(Videoes.class, videoesDao);
        registerDao(Wallpaper.class, wallpaperDao);
    }
    
    public void clear() {
        heroesDaoConfig.clearIdentityScope();
        heroPositionDaoConfig.clearIdentityScope();
        heroRolesDaoConfig.clearIdentityScope();
        playerCacheDaoConfig.clearIdentityScope();
        servicerDaoConfig.clearIdentityScope();
        homeTitleDaoConfig.clearIdentityScope();
        homeVideoDaoConfig.clearIdentityScope();
        charmingPhotoDaoConfig.clearIdentityScope();
        jiongPhotoDaoConfig.clearIdentityScope();
        matchDaoConfig.clearIdentityScope();
        msgTitleDaoConfig.clearIdentityScope();
        topDaoConfig.clearIdentityScope();
        topHeaderDaoConfig.clearIdentityScope();
        videoesDaoConfig.clearIdentityScope();
        wallpaperDaoConfig.clearIdentityScope();
    }

    public HeroesDao getHeroesDao() {
        return heroesDao;
    }

    public HeroPositionDao getHeroPositionDao() {
        return heroPositionDao;
    }

    public HeroRolesDao getHeroRolesDao() {
        return heroRolesDao;
    }

    public PlayerCacheDao getPlayerCacheDao() {
        return playerCacheDao;
    }

    public ServicerDao getServicerDao() {
        return servicerDao;
    }

    public HomeTitleDao getHomeTitleDao() {
        return homeTitleDao;
    }

    public HomeVideoDao getHomeVideoDao() {
        return homeVideoDao;
    }

    public CharmingPhotoDao getCharmingPhotoDao() {
        return charmingPhotoDao;
    }

    public JiongPhotoDao getJiongPhotoDao() {
        return jiongPhotoDao;
    }

    public MatchDao getMatchDao() {
        return matchDao;
    }

    public MsgTitleDao getMsgTitleDao() {
        return msgTitleDao;
    }

    public TopDao getTopDao() {
        return topDao;
    }

    public TopHeaderDao getTopHeaderDao() {
        return topHeaderDao;
    }

    public VideoesDao getVideoesDao() {
        return videoesDao;
    }

    public WallpaperDao getWallpaperDao() {
        return wallpaperDao;
    }

}
